#pragma once

typedef void (CALLBACK *DWASYNCCALLPROC)(void *param);
class DwAsyncCall
{
public:
	static void init();
	static void call(DWASYNCCALLPROC proc, void *param, DWORD threadId = 0);
	static void terminate();
};

/*template<typename C, typename F, typename A>
struct functor
{
	typedef void(*FUNC)(A);
	functor(C *pthis, FUNC f, A a)
	{

	}

	void operator()()
	{
		m_f(m_a);
	}

private:
	FUNC m_f;
	A m_a;
};*/